#!/usr/bin/env python3
# flake8: noqa

import pathlib
import platform

def configure(cfg):

    if not cfg.env.BOARD_CLASS in ['SITL', 'LINUX', 'ChibiOS']:
        return

    # networking doesn't build with clang unless using macOS
    if platform.system() != 'Darwin' and 'clang++' in cfg.env.COMPILER_CXX:
       return

    extra_src = [
        'modules/lwip/src/core/*c',
        'modules/lwip/src/core/ipv4/*c',
        'modules/lwip/src/api/*c',
        'modules/lwip/src/netif/*c',
        'modules/lwip/src/netif/ppp/*c',
    ]

    extra_src_inc = [
        'modules/lwip/src/include',
    ]

    extra_src.extend(['libraries/AP_Networking/lwip_hal/arch/*cpp'])

    if cfg.env.BOARD_CLASS == 'ChibiOS':
        extra_src.extend(['libraries/AP_Networking/lwip_hal/arch/evtimer.c'])

    extra_src_inc.extend(['libraries/AP_Networking/config',
                          'libraries/AP_Networking/lwip_hal/include'])

    cfg.env.AP_LIB_EXTRA_SOURCES['AP_Networking'] = []
    for pattern in extra_src:
        s = cfg.srcnode.ant_glob(pattern, dir=False, src=True)
        for x in s:
            cfg.env.AP_LIB_EXTRA_SOURCES['AP_Networking'].append(str(x))

    for inc in extra_src_inc:
        cfg.env.INCLUDES += [str(cfg.srcnode.make_node(inc))]
